package com.kitty.quartz;

import java.text.ParseException;
import java.util.Date;

import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;


public class QuartzMain {
	
	public static void main(String[] args) throws SchedulerException, ParseException {
		Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        JobDetail jobDetail = new JobDetail("ScanDirectory",Scheduler.DEFAULT_GROUP,ScanDirectoryJob.class); 
        Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);//每10秒触发一次
        Trigger t =  new CronTrigger("ct", "group", "0 * 0-23 * * ?");
        
        trigger.setName("scanTrigger");       
        trigger.setStartTime(new Date());//设置第一次触发时间            
        scheduler.scheduleJob(jobDetail, trigger);   
        scheduler.start();
        
	}
	
	/*
	 * 概念:Scheduler工厂,Scheduler,JobDetail,Trigger,   
	 * Quartz 的分布式,持久化 应用配置.  
	 * 
	 * 一个扩展的回调接口(Job)，在什么时间重复执行此Job(Trigger)，将这两者合并到一个调度器中(Scheduler)，
	 * 原生API，配置到Spring中的方式，一种是bean的配置方式，一种是namespace与注解驱动的组合配置，
	 * 
	 * Spring中的配置内部会主动去实例化一个JobDetail,然后通过反射的方式去调用配置的方法.
	 * 基本的处理过程，然后对涉及的概念、处理步骤进行不同的扩展,
	 * 
	 * 定义一个Job类,指明方法的执行Trigger,
	 */
	
}
